package com.platform.enums;

import com.platform.comm.constants.EnumOption;
import com.platform.comm.enums.IEnumOption;

import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * Description: 角色枚举
 *
 * @author coder
 * Created on 2019/3/19
 **/
@EnumOption
public enum RoleEnum implements IEnumOption<String> {
    /**
     * 普通用户
     */
    ROLE_LOGIN("登录角色"),
    /**
     * 管理员
     */
    ROLE_ADMIN("管理员"),

    /**
     * 采集员
     */
    XYGXJH_CJY("采集员"),

    /**
     * 区域管理员
     */
    ROLE_QU_ADMIN("区域管理员"),


    /**
     * 专项领域(prefix匹配)
     */
    CZD("专项领域管理员");

    private String meaning;

    public String getMeaning() {
        return meaning;
    }

    RoleEnum() {
    }

    RoleEnum(String meaning) {
        this.meaning = meaning;
    }

    /**
     * 枚举项 “键”
     *
     * @return key
     */
    @Override
    public String key() {
        return this.name();
    }

    /**
     * 枚举项 “值”
     *
     * @return value
     */
    @Override
    public String value() {
        return this.meaning;
    }

    /**
     * 枚举options
     *
     * @return
     */
    @Override
    public Map<String, String> enums() {
        return Arrays.stream(values()).collect(Collectors.toMap(IEnumOption::key, IEnumOption::value));
    }
}
